<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
/**
 * 简单对称加密算法之加密
 * @param String $string 需要加密的字串
 * @param String $skey 加密EKY
 * @author yfl <554665488@qq.com>
 * @date 2017年7月7日 11:46:35
 * @update 2017年7月7日 11:46:38
 * @return String
 */
function encode($string = '', $skey = 'oajiami')
{
    $strArr = str_split(base64_encode($string));
    $strCount = count($strArr);
    foreach (str_split($skey) as $key => $value)
        $key < $strCount && $strArr[$key] .= $value;
    return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr));
}

/**
 * 简单对称加密算法之解密
 * @param String $string 需要解密的字串
 * @param String $skey 解密KEY
 * @author yfl <554665488@qq.com>
 * @date 2017年7月7日 11:46:26
 * @update 2017年7月7日 11:46:30
 * @return String
 */
function decode($string = '', $skey = 'oajiami')
{
    $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2);
    $strCount = count($strArr);
    foreach (str_split($skey) as $key => $value)
        $key <= $strCount && isset($strArr[$key]) && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
    return base64_decode(join('', $strArr));
}

/**
 * @author: yfl
 * @QQ: 554665488
 * @description: 获得session信息
 * @time:2017年7月11日 14:26:50
 * @param null $key
 * @param string $prefix
 * @return mixed
 */
function getSession($key = null, $prefix = 'oa')
{
    if (is_null($key)) {
        return \think\Session::get('user_info', $prefix);
    } else {
        return \think\Session::get('user_info.' . $key, $prefix);
    }
}

/**
 * @author: yfl
 * @QQ: 554665488
 * @description: 递归获取树状结构数组
 * @time: 2017-7-12 14:41:33
 * @param $array
 * @param int $type
 * @param int $pid
 * @param int $level
 * @return array
 */
function array_recursion($array, $type = 1, $pid = 0, $level = 1)
{
    if (!is_array($array)) return [];
    $result_data = [];
    if ($type == 1) {
        foreach ($array as $index => $item) {
            if ($item['upuid'] == $pid) {
                $item['level'] = $level;
                $result_data[$index] = $item;
                $result_data[$index]['child']=array_recursion($array,1,$item['uid'],$level+1);
            }
        }
    }
    return $result_data;
}
/**
 * 使用curl获取远程数据
 * @param  string $url url连接
 * @return string      获取到的数据
 * 自学php博客www.zixuephp.cn整理
 */
function curl_get_contents($url){
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);                //设置访问的url地址
    //curl_setopt($ch,CURLOPT_HEADER,1);                //是否显示头部信息
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);               //设置超时
    curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);   //用户访问代理 User-Agent
    curl_setopt($ch, CURLOPT_REFERER,_REFERER_);        //设置 referer
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);          //跟踪301
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        //返回结果
    $r=curl_exec($ch);
    curl_close($ch);
    return $r;
}
/**
 * 不区分大小写的in_array()
 * @param  string $str   检测的字符
 * @param  array  $array 数组
 * @return boolear       是否in_array
 * 自学php博客www.zixuephp.cn整理
 */
function in_iarray($str,$array){
    $str=strtolower($str);
    $array=array_map('strtolower', $array);
    if (in_array($str, $array)) {
        return true;
    }
    return false;
}